package com.user.command;

import org.apache.ibatis.session.SqlSession;

import com.user.applaction.SessionManager;
import com.user.applaction.UserApp;
import com.user.mapping.UserMapping;
import com.user.pojo.User;
import com.user.tool.Tool;
/**
 * 登录命令（login）
 * @author sunchengqi
 *
 */
public class LoginCommand implements Command {
	@Override
	public void excute() {
		SqlSession session = SessionManager.getInstance().getSession();
		UserMapping mapper = session.getMapper(UserMapping.class);
		//初始化用户序号为0（0在数据库是不存在用户的）
		UserApp.getUser().setId(0);
		UserApp.getUser().setUserId(Tool.askUserInputNotNull("输入账号"));
		UserApp.getUser().setUserPassword(Tool.askUserInputNotNull("输入密码"));
		//如果查询ID和PASSWORD存在那么将当前单例用户设置为查询返回的用户信息
		if (null != mapper.selectByUserIdAndPassword(UserApp.getUser())) {
			User.setUser(mapper.selectByUserIdAndPassword(UserApp.getUser()));
		}
		//当未查询到用户时，（ID为0不存在用户）打印提示信息，存在则在打印欢迎信息
		if (UserApp.getUser().getId() != 0) {
			if(UserApp.getUser().getIsDelete() == 1) {
				Tool.printMsg("您好" + UserApp.getUser().getUserName() + "，欢迎回来");
			}else if(UserApp.getUser().getIsDelete() == -1) {
				UserApp.getUser().setId(0);
				Tool.printMsg("账号或密码错误，或账户不存在");
			}
		} else {
			Tool.printMsg("账号或密码错误，或账户不存在");
		}
		//
		session.close();
	}

}
